Method of predicting motion vectors in video codec in which multiple references are allowed, and motion vector encoding/decoding apparatus using the same

ABSTRACT

Initial value is selected when motion estimation is performed using predicted motion vector in video codec in which multiple references are allowed, and coding amount of motion vectors is reduced using predicted motion vector. Motion vector encoding apparatus includes predicted motion vector generator that generates adjacent motion vectors of current block with respect to each of reference pictures and generates each predicted motion vector of the current block from the generated adjacent motion vectors, motion estimator that determines final motion vector of the current block and final reference picture corresponding to the final motion vector with regard to search regions of the reference pictures, differential unit that obtains difference between the final motion vector of the current block and final predicted motion vector corresponding to the determined final reference picture among the predicted motion vectors, and unit for encoding information about the final reference picture and the difference.

RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.14/282,848 filed on May 20, 2014, which is a continuation of U.S.application Ser. No. 12/977,938, filed Dec. 23, 2010, now issued as U.S.Pat. No. 8,855,205, which claims priority under 35 U.S.C. §119 or 365 toKorean Patent Application No. 10-2010-0049315, filed May 26, 2010. Theentire teachings of the above applications are incorporated byreference.

BACKGROUND

1. Technical Field

Example embodiments of the present invention relates to a video codingmethod and, more particularly, to methods and apparatuses for encodingand decoding motion vectors in a video codec in which multiplereferences pictures are allowed.

2. Related Art

With the development of telecommunication technologies including theInternet, video communication is increasing in addition to textcommunication and voice communication. To satisfy the various desires ofconsumers with existing text-based communication is insufficient. Thus,multimedia service capable of covering various types of information suchas text, image, music, etc. is increasing. Multimedia data requires ahigh-capacity storage medium due to its enormous volume, and a widebandwidth when transmitted. Thus, to transmit the multimedia dataincluding text, video, and audio, it is essential to use a compressioncoding technique.

A fundamental principle of compressing data is based on a process ofeliminating the redundancy from data. The data can be compressed byeliminating spatial redundancy referring to repetition of the same coloror object in an image, temporal redundancy referring to little ornothing of variation between neighboring frames in a moving pictureframe or successive repetition of same sounds in audio or psycho-visualredundancy referring to dullness of human vision and sensation to highfrequencies.

To standardize the technique for compressing a moving picture, thereappear various video coding standards such as Moving Picture ExpertsGroup-2 (MPEG-2), MPEG-4, H.264 and so on. As shown in FIG. 1, all videocoding technologies employ a technique called block motion estimation inorder to eliminate temporal redundancy between neighboring video frames.

For example, to encode a certain block 12 within a current frame 10, areference frame 15, whose position is different in time from that of thecurrent frame 10, is searched for a block 17 matched with the block 12.Then, a residual between the block 12 of the current frame 10 and theblock 17 of the reference frame 15 is obtained. This residual is encodedto enhance encoding efficiency. Here, a displacement between the blocksis indicated by a motion vector. Motion compensation for the referenceframe 15 is made by the motion vector.

In this manner, the motion estimation process of obtaining the motionvector of the current block 12 takes a considerable amount ofcalculation in an entire video encoding process. Particularly, H.264,the recent video coding standard, employs a variable block size rangingfrom 4×4 to 16×16 in inter-frame coding or inter-picture coding. Thistechnique shows that coding efficiency is considerably improved comparedto a conventional technique of coding a macroblock (MB) having a fixedsize, but it has a disadvantage in that the amount of calculation isincreased tremendously because the process of searching for the motionvector should be performed on all the blocks having a variable blocksize. This increase in the amount of calculation may become a problem,particularly, in applications required to reduce the time differencebetween an encoder and a decoder such as real-time broadcasting,real-time video conferencing, and so on.

Thus, many studies are being made of the motion estimation process toreduce the amount of calculation in order to provide fast motionestimation. As a part of these studies, an early termination technique,a hierarchical search method, or a block mode skip method is known.

FIG. 2 shows a concept of searching for a motion vector on the basis ofa search initial value (search initial location). In general, motionestimation is a process of searching a reference frame 20 for a regionthat is best matched with a current block (i.e. a block intended tosearch for a current motion vector) while moving within a predeterminedsearch region 22 in a unit of pixel or sub-pixel. Here, a displacementbetween the current block and the searching region is nothing but amotion vector of the current block.

However, if it is possible to know a predicted motion vector of thecurrent block before the motion estimation is performed, it is possibleto reduce the amount of calculation of the motion estimation byperforming the motion estimation adopting a location 24 to which thepredicted motion vector points from a location 26 of the block as thesearch initial value. This is based on the prediction that the finaldetermined motion vector will have a small difference from the predictedmotion vector. Further, if it is possible to know the predicted motionvector, it is possible to reduce the amount of coding of the initialvalue of the motion vector as well as the motion vector per se. Intypical video coding technologies, the motion vector is not directlytransmitted to a motion vector decoding apparatus, but the differencebetween the motion vector and the predicted motion vector is transmittedto the motion vector decoding apparatus. This difference is called amotion vector difference (MVD). It is natural that, as the predictedmotion vector becomes similar to a real motion vector, MVD approaches 0(zero), and coding efficiency is improved.

SUMMARY

Example embodiments of the present invention are directed to moreaccurately set a search initial value in the event of motion estimationto reduce the amount of calculation in the motion estimation by findingmore accurate predicted motion vectors in a video codec in whichmultiple references are allowed.

Example embodiments of the present invention is also directed to reducethe coding amount of motion vectors to increase coding efficiency byfinding more accurate predicted motion vectors in a video codec in whichmultiple references are allowed.

It is to be understood that technical problems to be solved by thepresent invention are not limited to the aforementioned technicalproblems, and other technical problems which are not mentioned will beapparent from the following description to the person with an ordinaryskill in the art to which the present invention pertains.

In some example embodiments, there is provided a motion vector encodingapparatus, which comprises: a predicted motion vector generator thatgenerates adjacent motion vectors of a current block with respect toeach of a plurality of reference pictures and generates each predictedmotion vector of the current block from the generated adjacent motionvectors; a motion estimator that determines a final motion vector of thecurrent block and a final reference picture corresponding to the finalmotion vector for search regions of the plurality of reference pictures;a differential unit that obtains the difference between the final motionvector of the current block and the final predicted motion vectorcorresponding to the determined final reference picture among thepredicted motion vectors; and means for encoding information about thefinal reference picture and the difference.

In other example embodiments, there is provided a motion vector decodingapparatus, which comprises: an entropy encoder that losslessly encodesan input bitstream to obtain a motion vector difference associated witha current block and a reference picture number; a predicted motionvector generator that generates adjacent motion vectors of the currentblock on a reference picture corresponding to the reference picturenumber using motion vectors of neighboring blocks of the current blockand generates each predicted motion vector of the current block from thegenerated adjacent motion vectors; and an adder that adds the motionvector difference and the generated predicted motion vector of thecurrent block.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other objects, features and advantages of exampleembodiments of the present invention will become more apparent to thoseof ordinary skill in the art by describing in detail example embodimentsthereof with reference to the attached drawings, in which:

FIG. 1 shows a basic concept of inter-frame coding (or inter picturecoding) using a block motion estimation technique;

FIG. 2 shows a concept of searching for a motion vector on the basis ofa search initial value;

FIG. 3 shows the relationship between a current block that is todetermine a motion vector and neighboring blocks where the motion vectorhas already been determined;

FIG. 4 illustrates a basic concept of example embodiment of the presentinvention;

FIG. 5 is a block diagram showing construction of a motion vectorencoding apparatus using a predicted motion vector according to anexample embodiment of the present invention; and

FIG. 6 is a block diagram showing construction of a motion vectordecoding apparatus according to an example embodiment of the presentinvention.

DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS

Hereinafter, example embodiments of the present invention will bedescribed in detail. The above and other objects, features andadvantages of example embodiment of the present invention will becomemore apparent to those of ordinary skill in the art by describing indetail example embodiments thereof with reference to the attacheddrawings. However, example embodiment of the present invention is notlimited to the embodiments disclosed below, but can be implemented invarious forms. Rather, these embodiments are provided so that thisdisclosure will be thorough and complete, and will fully convey thescope of the invention to those skilled in the art. The scope of theinvention is merely defined by the appended claims and its equivalents.In the following detailed description, the same reference numeral willbe used for the same component or components regardless of the figuresin order to facilitate understanding of example embodiments of theinvention.

FIG. 3 shows an example of a method of obtaining a predicted motionvector. The predicted motion vector can be obtained using motion vectorsof blocks, i.e. a left block “Left”, an upper block “Upper”, and anupper right block “UpperRight”, among blocks located around a currentblock, wherein the motion vectors have already been determined. Indetail, the predicted motion vector can be obtained through mediancalculation as shown in Equation 1 below. This median calculation isused for a best predicted value because it is robust against noise.MV _(Median)=median(MV _(Left) ,MV _(Upper) ,MV_(UpperRight))  [Equation 1]

However, in a video coding standard that does not allow multiplereferences, the motion vectors of the neighboring blocks can be obtainedfrom a single reference frame. As such, three adjacent motion vectorscan always be obtained, and thus the predicted motion vector can beobtained by applying the median calculation to the obtained result.

However, in a video coding standard that allows multiple references, themotion vectors of the neighboring blocks can be obtained from differentreference frames. As such, all three motion vectors are not oftenpresent when based on a single reference frame. In a specific referenceframe, when only some of the three adjacent motion vectors are present,the predicted motion vector may be obtained using only some of the threeadjacent motion vectors. When no adjacent motion vectors are present, alimited method of, for instance, setting the predicted motion vector toa zero vector may be used.

How much the predicted motion vector is similar to the real motionvector to be obtained has a direct influence on the speed of motionestimation as well as video coding efficiency. For this reason, thelimited method as described above can be insufficient. In particular,when the motion estimation of the variable block size is performed likeH.264, complexity of the motion estimation is very high, and the codingamount of the motion vector increases compared to that of texture data.As such, it can be more important to obtain a more accurate predictedmotion vector.

A motion vector decoding method in a video coding scheme in whichmultiple references are allowed according to another example embodimentof the present invention will be described below.

FIG. 4 illustrates a fundamental concept of example embodiment of thepresent invention. Neighboring blocks 60, 70 and 80 are located around acurrent block 50 of a current frame or picture N. These neighboringblocks 60, 70 and 80 have final motion vectors that have already beendetermined. When referring to multiple frames (or pictures), a frame (ora picture) to which reference is made to obtain the final motion vector,i.e. a final reference frame (or a final reference picture), should bedetermined along with the final motion vector. Here, the sizes of thecurrent block and the neighboring block may have various sizes, but theycan be thought to be 8×8, a unit of selecting the reference frame. Inother words, the unit in which the motion vector is allocated in H.264is maximum 4×4, but the reference frame is at least considered to beselected in units of 8×8. Of course, one motion vector is indicated forthe 8×8 block in FIG. 4. However, when the motion vector is allocated toa block subdivided so as to be smaller than the 8×8 block, it can bethought to be a representative value (average, median, etc.) of thesubdivided motion vectors.

In FIG. 4, it is assumed that the final reference frame of theneighboring block 60 is N−1, the final reference frame of theneighboring block 70 is N−3, and the final reference frame of theneighboring block 80 is N−5. In this case, only a motion vector 61 ofthe neighbor block 60 is present in the frame N−1, only a motion vector72 of the neighboring block 70 is present in the frame N−3, and only amotion vector 81 of the neighboring block 80 is present in the frameN−5. Further, no motion vector of the neighboring block is present inthe frames N−2 and N−4.

To actually determine the final motion vector and the final referenceframe of the current block 50, the motion vectors are obtained byperforming the motion estimation on each reference frame, an optimal oneof the obtained motion vectors is determined as the final motion vector(and it is natural that a frame where the final motion vector isdetermined becomes the final reference frame). To perform the motionestimation on each reference frame, it is important to select an initialvalue of motion search. The number of motion vectors of the neighboringblocks (i.e., the number of adjacent motion vectors) for obtaining thepredicted motion vector to be used as the initial value may be less thanthree or none. Thus, according to a conventional video coding standard,it can be found that it is difficult to accurately determine thepredicted motion vector.

As such, as described above, example embodiment of the present inventionis focused on the fact that each reference frame is adapted to have allof a predetermined number (e.g. three) of adjacent motion vectors so asto be able to more accurately generate the predicted motion vector. Tothis end, on the basis of the adjacent motion vectors that are presentnow, a process of interpolating the corresponding adjacent motionvectors in the reference frame where no adjacent motion vectors arepresent is required.

The interpolating process may be performed by two methods as follows.

First, when a reference distance of the motion vector of the neighboringblock is equal to or greater than an interval between one referenceframe and the current block, the adjacent motion vector is generated bya value made by multiplying the motion vector of the neighboring blockby a ratio dividing the interval by the reference distance.

In FIG. 4, the reference distance of the motion vector 81 of theneighboring block 80 (i.e. the reference distance between the frames N−5and N) is 5. For example, the adjacent motion vector in the frame N−1 isobtained by a value (i.e. the motion vector 82) made by multiplying themotion vector 81 by a ratio dividing the interval, i.e. 1, between theframe N−1 and the current frame N (or the current block) by thereference distance, i.e. 5. Similarly, the adjacent motion vectors inthe frames N−2, N−3 and N−4 are also obtained by values made bymultiplying the motion vector 81 by ⅖, ⅗ and ⅘, respectively.

Second, when a reference distance of the motion vector of theneighboring block is less than an interval between one reference frameand the current block, the adjacent motion vector is generated bycontinuously tracing a location to which the motion vector of theneighboring block points.

In FIG. 4, the motion vector 61 of the neighboring block 60 has thereference distance of 1. Thus, the continuously tracing process is usedto generate the adjacent motion vectors in the frames N−2 through N−5.In the continuously tracing process, for example, a location on theframe N−1 to which the motion vector 61 points is shifted to a locationon the frame N−2 by a motion vector 62 thereof, to a location on theframe N−3 by a motion vector 63 of the location on the frame N−2, to alocation on the frame N−4 by a motion vector 64 of the location on theframe N−3, and finally to a location on the frame N−5 by a motion vector65 of the location on the frame N−4. Here, the motion vector of acertain location refers to the motion vector of the block including sucha location. Meanwhile, the location on the frame N−2 is a locationcorresponding to ½ of the motion vector 63. In this way, by using thecontinuous tracing, it is possible to determine regions (quadrilateralparts indicated by an orange color) corresponding to the neighboringblock 60 on all the reference frames N−1 through N−5. When all thecorresponding regions are determined in this way, a displacement fromthe current frame N to the center of each corresponding region is justdetermined as the adjacent motion vector in the corresponding frame.

Of course, the two interpolating methods may be simultaneously used asin the neighboring block 70. The motion vector 72 of the neighboringblock 70 points to a region 73 on the frame N−3. The adjacent motionvector on the frame N−2 and the adjacent motion vector on the frame N−1are calculated by ⅔ and ⅓ of the motion vector 72, respectively. In theremaining reference frames above N−4, the adjacent motion vectors can becalculated by the continuous tracing.

To sum up, the neighboring blocks 60, 70 and 80 have the correspondingregions (indicated by the same color) in all the reference frames, andthe displacements between the neighboring blocks and the correspondingregions exactly become the adjacent motion vectors associated with thecorresponding neighboring blocks in the specific reference frame. Thus,it is possible to obtain the adjacent motion vectors on all thereference frames by means of this interpolating process.

Accordingly, when the motion estimation is performed on the currentblock 50 on the reference frames, the predicted motion vector can beobtained from three adjacent motion vectors on the correspondingreference frame. That is, it is possible to obtain one predicted motionvector per reference frame. The motion vectors of the correspondingreference frame are obtained by performing the motion estimationadopting this predicted motion vector as an initial value. Among themotion vectors obtained by the motion estimation in this way, one isselected and adopted as a final motion vector. Of course, as a criterionof selecting the final motion vector, a known method such as sum ofabsolute differences (SAD) or rate-distortion cost may be used.

The final motion vector of the current block 50 is obtained as a setalong with a specific reference frame. For example, if the motion vectorobtained in the frame N−1 is most suitable for the current block 50,information that should be coded, i.e. information that should betransmitted to a motion vector decoding apparatus, is the obtained finalmotion vector and a number of the final reference frame (the frame N−1).

To more efficiently compress this final motion vector, a more accuratepredicted motion vector should be obtained from information that can beused in common by a video encoder and a motion vector decodingapparatus. As described above, in example embodiment of the presentinvention, since the predicted motion vector has already been obtainedwith respect to all the reference frames, the predicted motion vector ofthe final reference frame (i.e. the final predicted motion vector)belongs to information that has already been known. Thus, a differencebetween the final motion vector of the current block 50 and the finalpredicted motion vector is obtained and coded. Thereby, it is possibleto enhance coding efficiency. As the difference between the final motionvector and the final predicted motion vector becomes smaller, codingefficiency becomes higher. In example embodiment of the presentinvention, unlike the related art, the adjacent motion vectors aredetermined in all the frames, and then the predicted motion vector isobtained from the determined adjacent motion vectors. As such, there isa high possibility of reducing the magnitude of the difference.

FIG. 5 is a block diagram showing construction of a motion vectorencoding apparatus 100 using a predicted motion vector according to anexample embodiment of the present invention.

The motion vector encoding apparatus 100 includes a block divider 110, apredicted motion vector generator 140, a motion estimator 150, adifferential unit 195, and an entropy encoder 190, and may furtherinclude a motion compensator 160, a differential unit 165, a spatialtransformer 170, and a quantizer 180 when encoding video texture.

The block divider 110 divides an input frame into blocks, each of whichis an allocation unit of the motion vector, in a size of a macroblock orsub-macroblock. The macroblock is a block with a pixel size of 16×16,and the sub-macroblock is a block with a smaller size than themacroblock. In H.264, the sub-macroblock includes a 16×8 block, an 8×16block, and an 8×8 block. The 8×8 block may be again divided into an 8×4block, a 4×8 block, and a 4×4 block.

Further, in the case of a high-quality image exceeding a high-definitiontelevision (HDTV) class, the input frame (or input picture) may includecoding units (CUs) having pixel sizes of 32×32, 64×64, and 128×128. EachCU has a square shape, and may vary in size of 2N×2N (unit: pixel).Inter-prediction, intra-prediction, transform, quantization, and entropyencoding may be performed on the basis of the CU. The CU may include alargest coding unit (LCU) and a smallest coding unit (SCU). Sizes of theLCU and SCU can be expressed by values, which are a power of 2 and whichare equal to or greater than 8. The CU may have a recursive treestructure.

The recursive structure may be represented by a series of flags. Forexample, when the flag of CU_(k) having a hierarchical level or depth ofk is set to 0, the coding of the CU_(k) is performed in the currenthierarchical level or depth. When the flag is set to 1, the CUk havingthe current hierarchical level or depth of k is split into fourindependent CU_(k+1), each of which has a hierarchical level or depth ofk+1 and a size of N_(k+1)×N_(k+1). In this case, CU_(k+1) can berepresented by a sub-CU of CU_(k). CU_(k+1) can be processed in arecursive manner until the hierarchical level or depth of CU_(k+1)reaches a maximum allowable hierarchical level or depth. When thehierarchical level or depth of CU_(k+1) is equal to the maximumallowable hierarchical level or depth, splitting is no longer allowed.

The sizes of the LCU and SCU may be included in a sequence parameter set(SPS). The SPS may include the maximum allowable hierarchical level ordepth of the LCU. For example, in FIG. 2, if the maximum allowablehierarchical level or depth is 5, and when the size of one side of theLCU is 128 (unit: pixel), five kinds of CU sizes are possible: 128×128(LCU), 64×64, 32×32, 16×16, and 8×8 (SCU). In other words, when the sizeof the LCU and the maximum allowable hierarchical level or depth of theLCU are given, the allowable sizes of the CU can be determined.

Once the hierarchical splitting process as described above is completed,the inter-prediction or the intra-prediction can be performed on leafnodes of the CU hierarchical tree without further splitting. This leafCU is used as a basic unit of the inter-prediction or theintra-prediction, i.e. a prediction unit (PU).

For the inter-prediction or the intra-prediction, partitioning may beperformed on the leaf CU. That is, the partitioning is performed on thePU. Here, the PU refers to the basic unit for the inter-prediction orthe intra-prediction. However, the PU may be used as an existingmacroblock unit or sub-macroblock unit, or as an expanded macroblockunit or CU which is equal to or greater than the pixel size of 32×32.

The partitioning for the inter-prediction or the intra-prediction may besymmetric partitioning or asymmetric partitioning.

Referring to FIG. 5 again, in an example embodiment of the presentinvention, the block divider 110 may divide the input frame into theblocks having the hierarchical structure as in the H.264 standard or theblocks having a fixed size (e.g. 16×16, 8×8, 4×4) as targets for themotion estimation. Hereinafter, the block that acts as a target forperforming the motion estimation, i.e. obtaining the motion vectors isdefined as a current block, a frame to which the current block belongsas a current frame, and the frame to which reference is made in themotion estimation of the current block as a reference frame.

The predicted motion vector generator 140 generates adjacent motionvectors of the current block with respect to each of the plurality ofreference frames, and then generates each predicted motion vector of thecurrent block from the generated adjacent motion vectors. In particular,the predicted motion vector generator 140 generates motion vectors,which are present at locations on one reference frame and which areobtained by an interpolating process based on the motion vectors of theneighboring blocks of the current block, as the adjacent motion vectors.Here, the neighboring blocks may include blocks on the left, upper, andupper right sides of the current block. The median calculation ispreferably used to generate the predicted motion vector of the currentblock from the generated adjacent motion vectors. However, the othercalculations such as mean-value calculation may be used.

This interpolating process has been illustrated with reference to FIG.4, but it will be arranged again as follows.

First, when the reference distance of the motion vector of theneighboring block is equal to or greater than the interval between onereference frame and the current block, the adjacent motion vector isgenerated by a value made by multiplying the motion vector of theneighboring block by a ratio dividing the interval by the referencedistance.

Second, when the reference distance of the motion vector of theneighboring block is less than the interval between one reference frameand the current block, the adjacent motion vector is generated bycontinuously tracing the location to which the motion vector of theneighboring block points. That is, the displacement between the regioncentering on the traced location in a specific reference frame and theneighboring block can be determined as the adjacent motion vector. Forexample, the adjacent motion vector associated with the neighboringblock 60 in the frame N−3 is obtained from the displacement between theregion 69 centering on the traced location in the frame N−3 and theneighboring block 60.

Finally, the predicted motion vector generator 140 provides thepredicted motion vector MV_(p) of each reference frame to the motionestimator 150 as the search initial value for the motion estimation.

The motion estimator 150 performs the motion estimation adopting theprovided predicted motion vector as the search initial value 24. Indetail, the motion estimator 150 searches for a region in the referenceframe most matched with the current block while moving within the searchregion 22 (FIG. 2) (in unit of pixel or sub-pixel), and determines adisplacement between the current block and the region as the motionvector (MV) when the matching occurs. As a criterion of determining thematching, sum of absolute differences (SAD) that represents an errorbetween the current block and the region, or rate-distortion (R-D) costthat considers even a real coding result may be used. However, sinceexample embodiment of the present invention is based on multiple framereferences, the motion estimator 150 results in determining a finalmotion vector MV_(f) of the current block and a number Fr_No of thefinal reference frame corresponding to the final motion vector MV_(f)for the search regions of the plurality of reference frames.

The differential unit 195 obtains a motion vector difference (MVD)between the final motion vector MV_(f) of the current block and a finalpredicted motion vector MV_(pf) that corresponds to the determined finalreference frame among the predicted motion vectors MV_(p). The MVD andinformation about the final reference frame (e.g. the frame numberFr_No) are losslessly encoded by the entropy encoder 190.

Meanwhile, the motion vector compressing process has been describedabove, but the motion vector encoding apparatus 100 may additionallyencode video texture. In this case, the motion vector encoding apparatus100 further includes a motion compensator 160, a differential unit 165,a spatial transformer 170, and a quantizer 180.

The motion compensator 160 performs motion compensation on eachreference frame using the motion vectors of the blocks provided from themotion estimator 150, thereby obtaining a motion compensated frame.

Further, the differential unit 165 differentiates the motion compensatedframe, which compensates each reference frame by the motion vectors,from the input frame, thereby obtaining a residual frame.

Although not shown in FIG. 5, the reference frame may be stored in aframe memory (not shown) in the motion vector encoding apparatus.

The spatial transformer 170 transforms the residual frame into afrequency domain using predetermined spatial transform. As this spatialtransform, discrete cosine transform (DCT) is mainly used, or wavelettransform is sometimes used. A coefficient obtained by the spatialtransform is referred to as a transform coefficient. When the DCT isused as the spatial transform, the transform coefficient is referred toas a DCT coefficient. When the wavelet transform is used as the spatialtransform, the transform coefficient is referred to as a waveletcoefficient.

The quantizer 180 quantizes the transform coefficient obtained by thespatial transformer 170. The quantizing process refers to a process ofdividing the transform coefficient expressed by an arbitrary real numbervalue by a constant section, representing each of the divided transformcoefficients by a discrete value, and matching it with a predeterminedindex. Particularly, when the wavelet transform is used as the spatialtransform, embedded quantization may be used as the quantization.

The entropy encoder 190 losslessly encodes the transform coefficientquantized by the quantizer 180, along with the MVD and the referenceframe number, thereby generating an output bitstream. This losslesscoding includes arithmetic coding, variable length coding, Huffmancoding, and so on.

FIG. 6 is a block diagram showing construction of a motion vectordecoding apparatus 500 according to an example embodiment of the presentinvention. The motion vector decoding apparatus 500 includes an entropydecoder 510, a predicted motion vector generator 560, and an adder 565.When having a function of reconstructing video texture, the motionvector decoding apparatus 500 may further include a dequantizer 520, aninverse spatial transformer 530, a motion compensator 550, and an adder515.

The entropy decoder 510 losslessly decodes an input bitstream to obtainthe MVD of the current block and the reference frame number Fr_No.

The predicted motion vector generator 560 generates adjacent motionvectors of the current block on the reference frame corresponding to thereference frame number Fr_No using the motion vectors of the neighboringblocks of the current block, and generates a predicted motion vector ofthe current block from the generated adjacent motion vectors. A processof generating this predicted motion vector is similar that of the motionvector encoding apparatus 100. However, in the case of the motion vectordecoding apparatus 500, since the reference frame number has alreadybeen provided, it is sufficient to generate only the predicted motionvector associated with the reference frame number. In contrast, themotion vector encoding apparatus 100 generates the predicted motionvector with respect to each reference frame to be encoded.

In detail, the predicted motion vector generator 560 generates motionvectors, which are present at locations on the reference frame and whichare obtained by an interpolating process based on the motion vectors ofthe neighboring blocks of the current block, as the adjacent motionvectors. This interpolating process has been illustrated with referenceto FIG. 4, but will be arranged again as follows.

First, when the reference distance of the motion vector of theneighboring block is equal to or greater than the interval between onereference frame and the current block, the adjacent motion vector isgenerated by a value made by multiplying the motion vector of theneighboring block by a ratio dividing the interval by the referencedistance.

Second, when the reference distance of the motion vector of theneighboring block is less than the interval between one reference frameand the current block, the adjacent motion vector is generated bycontinuously tracing the location to which the motion vector of theneighboring block points. In detail, the adjacent motion vector isobtained by the displacement between the region centering on the tracedlocation in one reference frame and the neighboring block.

The adder 565 adds the MVD and the generated predicted motion vector ofthe current block to obtain the final motion vector of the currentblock. The final motion vector obtained in this way may be used toreconstruct a residual image.

The motion vector decoding apparatus 500 may further include adequantizer 520, an inverse spatial transformer 530, a motioncompensator 550, and an adder 515 in order to reconstruct the videotexture.

The entropy decoder 510 extracts texture data along with the MVD and thereference frame number. The extracted texture data is provided to thedequantizer 520.

The dequantizer 520 dequantizes the texture data transmitted from theentropy decoder 510. The dequantizing process refers to a process ofsearching for the quantization coefficient matched with the valueexpressed and transmitted by the predetermined index at the stage of thevideo encoder 100 (or motion vector encoding apparatus 100). A tablerepresenting a matching relation between the indices and thequantization coefficients may be transmitted from the stage of the videoencoder 100 (or motion vector encoding apparatus 100), and be previouslyset by a promise between the motion vector encoding apparatus and themotion vector decoding apparatus.

The inverse spatial transformer 530 inversely performs spatialtransform, and transforms the coefficient (frequency domain) generatedby the dequantization into a residual block in a spatial domain. Forexample, when the spatial transform is performed on the basis of thewavelet transform at the stage of the video encoder (or motion vectorencoding apparatus), the inverse spatial transformer 530 will performinverse wavelet transform. When the spatial transform is performed onthe basis of the DCT at the stage of the video encoder (or motion vectorencoding apparatus), the inverse spatial transformer 530 will performinverse DCT.

The motion compensator 550 performs the motion compensation on thepreviously reconstructed frame Fr using the final motion vector providedfrom the adder 565, thereby generating a motion compensated frame.

The adder 515 adds the residual block reconstructed by the inversespatial transformer 530 and the corresponding image in the motioncompensated frame provided from the motion compensator 550 toreconstruct the current block. A total sum of the current blocksreconstructed in this way may be formed into one reconstructed frame.

According to a motion vector decoding method in a video coding scheme inwhich multiple references are allowed according to another to anotherexample embodiment of the present invention, first, an input bitstreamis losslessly decoded to generate an MVD of a current block. A predictedmotion vector of the current block is generated using motion vectors ofneighboring blocks of the current block. An original image isreconstructed using the MVD and the generated predicted motion vector ofthe current block.

According to the motion vector decoding method according to anotherexample embodiment of the present invention, in the video coding schemein which multiple references are allowed, when the motion vectors of theencoded neighboring blocks—the left block “Left”, the upper block“Upper”, and the upper right block “UpperRight”—whose motion vectorshave already been determined (FIG. 3), indicate different referencepictures (or frames), the motion vectors of the neighboring blocks arenormalized according to a distance between the motion vector of eachneighboring block and the current picture, and thereby it is possible toobtain the predicted motion vector. That is, the predicted motion vectorcan be obtained using the normalized motion vectors of the neighboringblocks. In detail, the predicted motion vector can be obtained throughthe median calculation of the normalized motion vectors of theneighboring blocks.

Here, the motion vector of each neighboring block can be normalized bydividing a distance from the current picture (frame) to the currentblock by a distance from the current picture to the neighboring block.The normalization may be applied to P pictures and B pictures.

Here, the neighboring blocks may be formed in a square shape bysymmetric partition. Further, the neighboring blocks may be formed byasymmetric partition. An example of the neighboring block formed by theasymmetric partition may be a rectangular block.

According to a motion vector decoding method in a video coding scheme inwhich multiple references are allowed according to another exampleembodiment of the present invention, a process of generating a predictedmotion vector of the current block using motion vectors of neighboringblocks of the current block may include a process of generating adjacentmotion vectors of the current block using the motion vectors of theneighboring blocks of the current block, and a process of generating thepredicted motion vector of the current block from the generated adjacentmotion vectors.

Further, a process of losslessly decoding the input bitstream togenerate an MVD of the current block may further include a process oflosslessly decoding the input bitstream to obtain a reference picturenumber of the current block. The process of generating the adjacentmotion vectors of the current block using the motion vectors of theneighboring blocks of the current block may include a process ofgenerating the adjacent motion vectors of the current block on areference picture corresponding to the reference picture number usingthe motion vectors of the neighboring blocks of the current block.

The process of generating the adjacent motion vectors of the currentblock on the reference picture corresponding to the reference picturenumber using the motion vectors of the neighboring blocks of the currentblock may include a process of generating motion vectors, which arepresent at locations on the reference picture and are obtained by aninterpolating process based on the motion vectors of the neighboringblocks of the current block, as the adjacent motion vector, wherein theneighboring blocks include blocks on left, upper, and upper right sidesof the current block.

In the interpolating process, when the reference distance of the motionvector of the neighboring block is equal to or greater than an intervalbetween the reference picture and the current block, the adjacent motionvector can be obtained by a value made by multiplying the motion vectorof the neighboring block by a ratio. The ratio divides the interval bythe reference distance.

In the interpolating process, when the reference distance of the motionvector of the neighboring block is less than the interval between thereference picture and the current block, the adjacent motion vector canbe obtained by continuously tracing a location to which the motionvector of the neighboring block points. The adjacent motion vector canbe obtained by a displacement between a region centering on the tracedlocation in the reference picture and the neighboring block.

A process of reconstructing an original image using the MVD and thegenerated predicted motion vector of the current block may include aprocess of adding the MVD and the generated predicted motion vector ofthe current block to reconstruct the original image.

The process of generating the predicted motion vector of the currentblock from the generated adjacent motion vectors may be performed bymedian calculation.

Up to now, each component of FIGS. 5 and 6 may refer to software orhardware such as a field-programmable gate array (FPGA) or anapplication-specific integrated circuit (ASIC). However, thesecomponents are not limited to the software or hardware, and thus may beconstructed so as to be present in an addressable storage medium or toenable one or more processors. Functions provided within the componentscan be implemented by subdivided components or one component thatcombines a plurality of components to perform a specific function.

According to example embodiment of the present invention, in comparisonwith a conventional motion vector prediction technique, since moreaccurate motion vector prediction is possible without overhead of abitstream, it is possible to reduce the amount of calculation in theevent of motion estimation and to improve video coding efficiency.

While the invention has been shown and described with reference tocertain example embodiments thereof, it will be understood by thoseskilled in the art that various changes in form and details may be madetherein without departing from the spirit and scope of the invention asdefined by the appended claims. Therefore, it is to be understood thatthe embodiments described herein are illustrative in every respect andnot restrictive.

What is claimed is:
 1. A decoding method of a decoding device,comprising: decoding, by the decoding device, an input bitstream togenerate a motion vector difference for a current block; interpolating,by the decoding device, a motion vector of a first neighboring block ofthe current block based on a first distance and a second distance togenerate a first interpolated motion vector, wherein the firstneighboring block and the current block are in a current picture, thefirst distance is a distance between a reference picture of the firstneighboring block and the current picture, the second distance is adistance between a reference picture of the current block and thecurrent picture, and the motion vector of the first neighboring block isused to decode the first neighboring block according to the referencepicture of the first neighboring block, wherein the reference picture ofthe first neighboring block is different from the reference picture ofthe current block; interpolating, by the decoding device, a motionvector of a second neighboring block of the current block based on athird distance and a fourth distance to generate a second interpolatedmotion vector, wherein the second neighboring block is in the currentpicture, the third distance is a distance between a reference picture ofthe second neighboring block and the current picture, the fourthdistance is a distance between a reference picture of the current blockand the current picture, and the motion vector of the second neighboringblock is used to decode the second neighboring block according to thereference picture of the second neighboring block, wherein the referencepicture of the second neighboring block is different from the referencepicture of the current block; predicting, by the decoding device, amotion vector of the current block based on the first interpolatedmotion vector and the second interpolated motion vector to generate apredicted motion vector; and adding, by the decoding device, thepredicted motion vector and the motion vector difference to generate themotion vector of the current block.
 2. The decoding method of claim 1,further comprising: performing, by the decoding device, a motioncompensating by using the motion vector of the current block to generatea motion compensated block of the current block; and adding, by thedecoding device, a residual block of the current block and the motioncompensated block of the current block to reconstruct the current block.3. The decoding method of claim 1, wherein at least one of the firstneighboring block and the second neighboring block is formed in arectangular shape by asymmetric partition.
 4. The decoding method ofclaim 1, wherein interpolating the motion vector of the firstneighboring block comprises: interpolating the motion vector of thefirst neighboring block of the current block based on the first distanceand the second distance to generate the first interpolated motionvector, when the first distance is equal to or greater than the seconddistance.
 5. The decoding method of claim 1, wherein the firstneighboring block is one of a left block, an upper block, and a rightupper block of the current block.
 6. The decoding method of claim 1,wherein the second neighboring block is one of a left block, an upperblock, and a right upper block of the current block.
 7. The decodingmethod of claim 1, wherein the first neighboring block is a left blockof the current block, and the second neighboring block is one of anupper block, and a right upper block of the current block.
 8. Thedecoding method of claim 1, wherein predicting the motion vector of thecurrent block comprises: selecting one among a plurality of interpolatedmotion vectors including the first interpolated motion vector and thesecond interpolated motion vector as the predicted motion vector.
 9. Thedecoding method of claim 8, wherein selecting one among the plurality ofthe interpolated motion vectors comprises: selecting a median valueamong the plurality of the interpolated motion vectors including thefirst interpolated motion vector and the second interpolated motionvector as the predicted motion vector.
 10. A decoding device,comprising: a decoder configured to decode an input bitstream togenerate a motion vector difference for a current block; a predictionmotion vector generator configured to: interpolate a motion vector of afirst neighboring block of the current block based on a first distanceand a second distance to generate a first interpolated motion vector,wherein the first neighboring block and the current block are in acurrent picture, the first distance is a distance between a referencepicture of the first neighboring block and the current picture, thesecond distance is a distance between a reference picture of the currentblock and the current picture, and the motion vector of the firstneighboring block is used to decode the first neighboring blockaccording to the reference picture of the first neighboring block,wherein the reference picture of the first neighboring block isdifferent from the reference picture of the current block; interpolate amotion vector of a second neighboring block of the current block basedon a third distance and a fourth distance to generate a secondinterpolated motion vector, wherein the second neighboring block is inthe current picture, the third distance is a distance between areference picture of the second neighboring block and the currentpicture, the fourth distance is a distance between a reference pictureof the current block and the current picture, and the motion vector ofthe second neighboring block is used to decode the second neighboringblock according to the reference picture of the second neighboringblock, wherein the reference picture of the second neighboring block isdifferent from the reference picture of the current block, and predict amotion vector of the current block based on the first interpolatedmotion vector and the second interpolated motion vector to generate apredicted motion vector; and a first adder configured to add thepredicted motion vector and the motion vector difference to generate themotion vector of the current block.
 11. The decoding device of claim 10,further comprising: a motion compensator configured to perform a motioncompensating by using the motion vector of the current block to generatea motion compensated block of the current block; and a second adderconfigured to add a residual block of the current block and the motioncompensated block of the current block to reconstruct the current block.12. The decoding device of claim 10, wherein at least one of the firstneighboring block and the second neighboring block is formed in arectangular shape by asymmetric partition.
 13. The decoding device ofclaim 10, wherein a prediction motion vector generator is configured tointerpolate the motion vector of the first neighboring block of thecurrent block based on the first distance and the second distance togenerate the first interpolated motion vector, when the first distanceis equal to or greater than the second distance.
 14. The decoding deviceof claim 10, wherein the first neighboring block is one of a left block,an upper block, and a right upper block of the current block.
 15. Thedecoding device of claim 10, wherein the second neighboring block is oneof a left block, an upper block, and a right upper block of the currentblock.
 16. The decoding device of claim 10, wherein the firstneighboring block is a left block of the current block, and the secondneighboring block is one of an upper block, and a right upper block ofthe current block.
 17. The decoding device of claim 10, wherein theprediction motion vector generator is configured to select one among aplurality of interpolated motion vectors including the firstinterpolated motion vector and the second interpolated motion vector asthe predicted motion vector.
 18. The decoding device of claim 17,wherein the prediction motion vector generator is configured to select amedian value among the plurality of the interpolated motion vectorsincluding the first interpolated motion vector and the secondinterpolated motion vector as the predicted motion vector.
 19. Anencoding method of an encoding device, comprising: interpolating, by theencoding device, a motion vector of a first neighboring block of thecurrent block based on a first distance and a second distance togenerate a first interpolated motion vector, wherein the firstneighboring block and the current block are in a current picture, thefirst distance is a distance between a reference picture of the firstneighboring block and the current picture, the second distance is adistance between a reference picture of the current block and thecurrent picture, and the motion vector of the first neighboring block isused to encode the first neighboring block according to the referencepicture of the first neighboring block, wherein the reference picture ofthe first neighboring block is different from the reference picture ofthe current block; interpolating, by the encoding device, a motionvector of a second neighboring block of the current block based on athird distance and a fourth distance to generate a second interpolatedmotion vector, wherein the second neighboring block is in the currentpicture, the third distance is a distance between a reference picture ofthe second neighboring block and the current picture, the fourthdistance is a distance between a reference picture of the current blockand the current picture, and the motion vector of the second neighboringblock is used to encode the second neighboring block according to thereference picture of the second neighboring block, wherein the referencepicture of the second neighboring block is different from the referencepicture of the current block; predicting, by the encoding device, amotion vector of the current block based on the first interpolatedmotion vector and the second interpolated motion vector to generate apredicted motion vector of the current block; generating, by theencoding device, the motion vector of the current block; and encoding,by the encoding device, a difference between the motion vector of thecurrent block and the predicted motion vector of the current block. 20.The encoding method of claim 19, wherein the first neighboring block isone of a left block, an upper block, and a right upper block of thecurrent block.